SpringBoot文件上传、删除及下载 您所在的位置:网站首页 file 删除文件 SpringBoot文件上传、删除及下载

SpringBoot文件上传、删除及下载

#SpringBoot文件上传、删除及下载| 来源: 网络整理| 查看: 265

SpringBoot文件上传、删除及下载

最近的项目中,需要将文件保存项目的根目录路径下,特此记录下文件的操作:

文件上传 /** * 文件上传(相对路径) * * @param uploadFile 文件 * @param request 参数 * @return 文件路径 */ public static String upload(MultipartFile uploadFile, HttpServletRequest request) { // 项目根路径下的目录 final String UPLOAD_PATH_PREFIX = "/static/resources/upload/app"; //访问目录 final String DOWNLOAD_PATH_PREFIX = "/resources/upload/app"; if (uploadFile.isEmpty()) { //返回选择文件提示 return "请选择上传文件"; } //项目根目录的绝对路径 + 指定文件夹路径 String realPath = System.getProperty("user.dir") + UPLOAD_PATH_PREFIX; logger.info("-----------上传文件保存的路径【" + realPath + "】-----------"); //存放上传文件的文件夹 File file = new File(realPath); logger.info("-----------输出文件夹绝对路径 -- 这里的绝对路径是相当于当前项目的路径【" + file.getAbsolutePath() + "】-----------"); if (!file.isDirectory()) { //递归生成文件夹 file.mkdirs(); } //获取原始的名字 String oldName = uploadFile.getOriginalFilename(); logger.info("-----------文件原始的名字【" + oldName + "】-----------"); //原文件名 + 时间戳 + 文件类型 String newName = oldName.substring(0, oldName.lastIndexOf(".")) + System.currentTimeMillis() + oldName.substring(oldName.lastIndexOf(".")); logger.info("-----------文件要保存后的新名字【" + newName + "】-----------"); try { //构建真实的文件路径 File newFile = new File(file.getAbsolutePath() + File.separator + newName); //转存文件到指定路径,如果文件名重复的话,将会覆盖掉之前的文件,这里是把文件上传到 “绝对路径” uploadFile.transferTo(newFile); //访问前缀方式一 // String filePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + DOWNLOAD_PATH_PREFIX + "/" + newName; //访问前缀方式二 // StringBuffer url = request.getRequestURL(); // String tempContextUrl = url.delete(url.length() - request.getRequestURI().length(), url.length()).toString(); //不包含访问前缀 String filePath = DOWNLOAD_PATH_PREFIX + "/" + newName; logger.info("-----------【" + filePath + "】-----------"); return filePath; } catch (Exception e) { e.printStackTrace(); } return "上传失败!"; } 文件删除 /** * 文件删除 * * @param filePath 文件路径 * @return false、true */ public static Boolean delete(String filePath) { File file = new File(filePath); if (file.exists()) { file.delete(); System.out.println("===========删除成功================="); return true; } else { System.out.println("===============删除失败=============="); return false; } } 文件下载

文件下载功能参考博客:https://www.jianshu.com/p/85017f5ecba1

/** * 文件下载 * * @param response 声明response * @return false、true */ public Boolean downloadFile(HttpServletResponse response) { String fileName = "redis-serve1599809147700.exe";// 文件名 if (fileName != null) { //设置文件路径 File file = new File(System.getProperty("user.dir") + "/static/resources/upload/app/redis-serve1599809147700.exe"); //File file = new File(realPath , fileName); if (file.exists()) { response.setContentType("application/force-download");// 设置强制下载不打开 response.addHeader("Content-Disposition", "attachment;fileName=" + fileName);// 设置文件名 byte[] buffer = new byte[1024]; FileInputStream fis = null; BufferedInputStream bis = null; try { fis = new FileInputStream(file); bis = new BufferedInputStream(fis); OutputStream os = response.getOutputStream(); int i = bis.read(buffer); while (i != -1) { os.write(buffer, 0, i); i = bis.read(buffer); } return true; } catch (Exception e) { e.printStackTrace(); } finally { if (bis != null) { try { bis.close(); } catch (IOException e) { e.printStackTrace(); } } if (fis != null) { try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } } } } return false; }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有